home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / oscar / rendezvous / rendezvous.pyo (.txt) < prev   
Python Compiled Bytecode  |  2008-10-13  |  2KB  |  54 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. import oscar
  5. from util import lookup_table
  6. import time
  7. import struct
  8. rendezvous_tlvs = lookup_table({
  9.     10: 'request_num',
  10.     15: 'mystery',
  11.     14: 'locale',
  12.     13: 'encoding',
  13.     12: 'user_message',
  14.     2: 'proxy_ip',
  15.     22: 'proxy_ip_check',
  16.     3: 'client_ip',
  17.     5: 'external_port',
  18.     23: 'port_check',
  19.     16: 'proxy_flag',
  20.     10001: 'extended_data',
  21.     10002: 'filename_encoding',
  22.     4: 'verified_ip' })
  23. rdv_types = rendezvous_message_types = lookup_table(dict(request = 0, cancel = 1, accept = 2))
  24.  
  25. def oscarcookie():
  26.     return int(time.time() ** 2)
  27.  
  28.  
  29. def rendezvous_header(message_type, cookie, capability, data = ''):
  30.     type = map_intarg(message_type, rendezvous_message_types)
  31.     return struct.pack('!HQ16s', type, cookie, capability) + data
  32.  
  33.  
  34. def rdv_snac(screenname, capability, type, cookie = None, data = ''):
  35.     if cookie is None:
  36.         cookie = int(time.time() ** 2)
  37.     
  38.     header = rendezvous_header(type, cookie, capability)
  39.     rendezvous_data = oscar.OscarUtil.tlv(5, header + data)
  40.     return oscar.snac.x04_x06(screenname, cookie, 2, rendezvous_data)
  41.  
  42.  
  43. def map_intarg(arg, map):
  44.     if isinstance(arg, basestring):
  45.         if arg not in map:
  46.             raise ValueError('%s is not a valid argument' % arg)
  47.         
  48.         return map[arg]
  49.     elif not isinstance(arg, int):
  50.         raise ValueError('integer or string expected')
  51.     
  52.     return arg
  53.  
  54.